/**
 * @param {string} value - 输入的值
 * @param {string} name - 匹配的对象属性 [mkPrice | slPrice]
 * input 只能输入正数 最多两位小数
 */
export const s_limitInput = (key) => {  //input需要 v-model 绑定原始值
    let data = this[key]; //得到原始值
    // 过滤
    this[key] =
        ("" + data) // 第一步：转成字符串
            .replace(/[^\d^\.]+/g, "") // 第二步：把不是数字，不是小数点的过滤掉
            .replace(/^0+(\d)/, "$1") // 第三步：第一位0开头，0后面为数字，则过滤掉，取后面的数字
            .replace(/^\./, "0.") // 第四步：如果输入的第一位为小数点，则替换成 0. 实现自动补全
            .match(/^\d*(\.?\d{0,2})/g)[0] || ""; // 第五步：最终匹配得到结果 以数字开头，只有一个小数点，而且小数点后面只能有0到2位小数
},
/**
 * 获取数据类型
 * @param {*} type -判断类型的参数
 * @return 类型String
 */
export const s_type = (type) => Object.prototype.toString.call(type).replace(/\[object (.*)\]/, '$1')
/**
 * 补0操作
 * @param {*} num 数值strORnum
 * @param {number} n 总数
 */
export const s_prefixInteger = (num, n) => {
    return (Array(n).join(0) + num).slice(-n);
}

/**
 * 
 * @param {string} format 时间格式 YYYY年 MM月 DD日 hh时 mm分 ss秒
 * @param {*} setDate 传入时间 默认是当前系统时间
 */
export const s_timeFilter = (format, setDate) => {
    // 补0操作
    function PrefixInteger(num, n) {
        return (Array(n).join(0) + num).slice(-n);
    }
    function type(type) {
        return Object.prototype.toString.call(type).replace(/\[object (.*)\]/, '$1')
    }
    // 得到时间
    let date = setDate || new Date()
    if (type(date) != 'Date') {
        date = new Date(date)
    }
    let dateObj = {}
    dateObj.year = date.getFullYear();
    dateObj.month = PrefixInteger(date.getMonth() + 1, 2);
    dateObj.date = PrefixInteger(date.getDate(), 2);
    dateObj.dayIndex = date.getDay();
    dateObj.day = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")[date.getDay()];
    dateObj.hour = PrefixInteger(date.getHours(), 2);
    dateObj.minute = PrefixInteger(date.getMinutes(), 2);
    dateObj.second = PrefixInteger(date.getSeconds(), 2);
    dateObj.value = format.replace('YYYY', dateObj.year).replace('MM', dateObj.month).replace('DD', dateObj.date).replace('hh', dateObj.hour).replace('mm', dateObj.minute).replace('ss', dateObj.second)
    return dateObj
}